Шаг 2 - Объектная модель Excel

Мы будем изменять наш макрос. Зайдите в пункт меню "макросы", выберите наш и скажите "изменить":

Sub Test()
	Dim book As String
	Dim sheet As String
	Dim addr As String
	addr = "C"
	book = Application.ActiveWorkbook.Name
	sheet = Application.ActiveSheet.Name

	Workbooks(book).Activate
	Worksheets(sheet).Activate

	Range("A1") = book
	Range("B1") = sheet

	Dim xList As Integer
	xList = Application.Sheets.Count
	For x = 1 To xList
		Dim s As String
		s = addr + LTrim(Str(x))
		Range(s) = x
	Next x
End Sub

Программирование на VBA можно рассматривать, как управление объектами приложения. Вот именно объектами и управляет наше приложение. В нашем случае, если упростить иерхическую архитектуру, то это выглядит так.

Application
	Workbook	
	........
		Worksheets
		......
			Cell
			.....

То есть главный объект - приложение. В приложении могут быть несколько книг ( Workbook ), внутри которых находятся листы ( Worksheets ) и листы разбиты на ячейки ( Cell ). При работе активными могут быть только одна книга и один лист. Вот я своим макросом и пытаюсь это выяснить. А заодно, сколько листов в текущей книге.

DIM - объявляет переменную с типом string. Используя объект Application, мы получаем имена текущих книг и листа. С помощью Range("...") можно выделить ячейку и поместить значения в неё или считать. В общем, объекты имеют огромное количество свойств. Задача программиста на VBA знать эти свойства и методы. Ну, я думаю, мысль этого шага понятна :-))

Hosted by uCoz